home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d4 / bldbridg.arc / IBC.BAS (.txt) next >
Encoding:
GW-BASIC  |  1986-06-22  |  23.9 KB  |  712 lines

  1. 10  ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. 20  ' %% * INTERNATIONAL BRIDGE CONTRACTORS * %%
  3. 30  ' %% TRS-80 Version: William Philip Case  %%
  4. 40  ' %% IBM Version By: William D. Hileman   %%
  5. 50  ' %% *************** 2262-3 Lucretia Ave. %%
  6. 60  ' %% * Greystone *** San Jose, CA 95122   %%
  7. 70  ' %% **** Software * (408) 971-8416       %%
  8. 80  ' %% *************** DECEMBER 10, 1984    %%
  9. 90  ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  10. 100  ' Main Program
  11. 110  KEY OFF:LOCATE ,,,1,11
  12. 120  SD=VAL(LEFT$(TIME$,2))*1000+VAL(MID$(TIME$,4,2))*100+VAL(RIGHT$(TIME$,2))
  13. 130  RANDOMIZE SD
  14. 140  COLOR 7,0:SCREEN 0,0,0:LOCATE ,,0
  15. 150  GOSUB 1000  ' Initialize
  16. 160  GOSUB 2000  ' Put Up Title Screen
  17. 170  GOSUB 3000  ' Get Players
  18. 180  GOSUB 10000 ' Play Game
  19. 190  GOSUB 20000 ' Play Again?
  20. 200  IF AGAIN THEN 160
  21. 210  COLOR 7,0:CLS:KEY ON:LOCATE ,,1:END
  22. 220  '
  23. 1000  ' Subroutine - Initialize
  24. 1010  DIM NA$(4),C#(4),B$(6),BC!(4,6),BS(6),BM(6),BB(4,6),M(6),COLR$(15),TI(4)
  25. 1020  DIM CB(4),CR(4),RD#(4),M#(4),EP$(10),R$(4),OC!(6),T$(6),FC(4),SB$(6)
  26. 1030  TITLE$="<<INTERNATIONAL BRIDGE CONTRACTORS>>"
  27. 1040  CR$=CHR$(13):BS$=CHR$(29):LF$=CHR$(10):DL$=CHR$(8)
  28. 1050  U$="$$###,###,###.##":LK$="$$###,###.##"
  29. 1060  GR1$=CHR$(201):GR2$=CHR$(205):GR3$=CHR$(187):GR4$=CHR$(186)
  30. 1070  GR5$=CHR$(200):GR6$=CHR$(188):GR7$=CHR$(204):GR8$=CHR$(185)
  31. 1080  GR9$=CHR$(203):GR10$=CHR$(206):GR11$=CHR$(202)
  32. 1090  A$=STRING$(79,GR2$)
  33. 1100  RESTORE 1800
  34. 1110  FOR CNT=1 TO 6
  35. 1120   READ B$(CNT),T$(CNT),OC!(CNT),BS(CNT),BM(CNT),M(CNT)
  36. 1130   SB$(CNT)=B$(CNT)
  37. 1140   WHILE RIGHT$(SB$(CNT),1)=" "
  38. 1150    SB$(CNT)=LEFT$(SB$(CNT),LEN(SB$(CNT))-1)
  39. 1160   WEND
  40. 1170  NEXT CNT
  41. 1180  TRUE=-1:FALSE=(NOT TRUE)
  42. 1190  EP$(1)="$$#.##":EP$(2)=EP$(1):EP$(3)="$$##.##":EP$(4)="$$###.##"
  43. 1200  EP$(5)="$$#,###.##":EP$(6)="$$##,###.##":EP$(7)="$$###,###.##"
  44. 1210  EP$(8)="$$#,###,###.##":EP$(9)="$$##,###,###.##":EP$(10)=U$
  45. 1220  CC#=1E+06:CI=5:RC#=5E+06:MC#=2E+06
  46. 1230  RESTORE 1900
  47. 1240  FOR CNT=1 TO 15
  48. 1250   READ COLR$(CNT)
  49. 1260  NEXT CNT
  50. 1270  GOTO 1990
  51. 1800  ' Bridge DATA
  52. 1810  '       Bridge       Traffic    Cost  Safe Max. MT
  53. 1820  DATA "Pontoon    ","Light    ", 75000,3000,5000, 5
  54. 1830  DATA "Single Beam","Light-Med",210000,1000,1500, 8
  55. 1840  DATA "Truss      ","Medium   ",300000,1000,2000,15
  56. 1850  DATA "Arch       ","Medium   ",345000,1200,2200,25
  57. 1860  DATA "Cantilever ","Heavy    ",525000,2500,3500,34
  58. 1870  DATA "Suspension ","Heavy    ",998000,3000,6000,50
  59. 1900  ' Text (foreground Colors
  60. 1910  DATA Blue,Green,Cyan,Red
  61. 1920  DATA Magenta,Brown,White,Gray
  62. 1930  DATA Lt. Blue,Lt. Green,Lt. Cyan,Lt. Red
  63. 1940  DATA Lt. Magenta,Yellow,Lt. White
  64. 1990  RETURN
  65. 2000  ' Subroutine - Put Up Title Screen
  66. 2010  COLOR 7,0:CLS
  67. 2020  TXT$=GR1$+STRING$(27,GR2$)+GR3$:GOSUB 40100:PRINT
  68. 2030  TXT$=GR4$+" I N T E R N A T I O N A L "+GR4$:GOSUB 40100:PRINT
  69. 2040  TXT$=GR5$+STRING$(6,GR2$)+GR9$+STRING$(13,GR2$)
  70. 2050  TXT$=TXT$+GR9$+STRING$(6,GR2$)+GR6$:GOSUB 40100:PRINT
  71. 2060  TXT$=GR4$+" B R I D G E "+GR4$:GOSUB 40100:PRINT
  72. 2070  TXT$=GR1$+STRING$(4,GR2$)+GR11$+STRING$(13,GR2$)
  73. 2080  TXT$=TXT$+GR11$+STRING$(4,GR2$)+GR3$:GOSUB 40100:PRINT
  74. 2090  TXT$=GR4$+" C O N T R A C T O R S "+GR4$:GOSUB 40100:PRINT
  75. 2100  TXT$=GR5$+STRING$(23,GR2$)+GR6$:GOSUB 40100:PRINT LF$
  76. 2110  TXT$="1984 Greystone Software":GOSUB 40100:PRINT
  77. 2120  RESTORE 2240
  78. 2130  FOR CNT=1 TO 11
  79. 2140   READ TX1$,TX2$
  80. 2150   TXT$=TX1$+TX2$
  81. 2160   PRINT TXT$
  82. 2170  NEXT CNT
  83. 2180  LOCATE 21,1:PRINT A$
  84. 2190  TXT$="PRESS <RETURN>":GOSUB 40100:PRINT:PRINT A$
  85. 2200  WHILE INKEY$<>"":WEND
  86. 2210  X$=INPUT$(1)
  87. 2220  IF X$<>CR$ THEN 2200
  88. 2230  GOTO 2990
  89. 2240  ' Title Screen Data
  90. 2250  DATA "      _                     _          "
  91. 2260  DATA "           _                     _     "
  92. 2270  DATA "     /|\=========+=========/|\========="
  93. 2280  DATA "+=========/|\=========+=========/|\    "
  94. 2290  DATA "    / | \        |        / | \        "
  95. 2300  DATA "|        / | \        |        / | \   "
  96. 2310  DATA "   /  |  \       |       /  |  \       "
  97. 2320  DATA "|       /  |  \       |       /  |  \  "
  98. 2330  DATA "  /---|---\------+------/---|---\------"
  99. 2340  DATA "+------/---|---\------+------/---|---\ "
  100. 2350  DATA " /____|____\_____|_____/____|____\_____"
  101. 2360  DATA "|_____/____|____\_____|_____/____|____\"
  102. 2370  DATA " ```````````\              |=|         "
  103. 2380  DATA "          |=|              /'''''''''''"
  104. 2390  DATA " ````````````\             |=|         "
  105. 2400  DATA "          |=|             /''''''''''''"
  106. 2410  DATA " `````````````\            |=|         "
  107. 2420  DATA "          |=|            /'''''''''''''"
  108. 2430  DATA " ``````````````\~~^^~~~~^^^^~~~~~^~~~^^"
  109. 2440  DATA "^~~~~~~^^^^^^~~^~~~~~~^~/''''''''''''''"
  110. 2450  DATA " ``````````````/   ^^^^      ^^   ^^^^ "
  111. 2460  DATA " ^^ ^^     ^^^  ^^^ ^^  \''''''''''''''"
  112. 2990  RETURN
  113. 3000  ' Subroutine - Get Players
  114. 3010  CLS:PRINT
  115. 3020  TXT$=TITLE$:GOSUB 40100
  116. 3030  PRINT LF$
  117. 3040  PRINT "Please enter the number of players (1-4) < >";BS$;BS$;
  118. 3050  LIN=CSRLIN:COL=POS(0)
  119. 3060  FLD.LEN=1:BK$="1"
  120. 3070  LOCATE LIN,COL:PRINT BK$;BS$;
  121. 3080  BEEP:GOSUB 40200:X$=BLD$
  122. 3090  IF X$="" THEN X$=BK$
  123. 3100  IF X$<"1" OR X$>"4" THEN BEEP:GOTO 3070
  124. 3110  PRINT LF$:P=VAL(X$)
  125. 3120  FOR Z=1 TO P
  126. 3130   PRINT "Player #";USING "#";Z;
  127. 3140   PRINT ", please enter your name: ";
  128. 3150   LIN=CSRLIN:COL=POS(0)
  129. 3160   PRINT STRING$(30,95):LOCATE LIN,COL
  130. 3170   FLD.LEN=30:BK$=CHR$(95):GOSUB 40200
  131. 3180   NA$(Z)=BLD$
  132. 3190   PRINT SPACE$(30-LEN(NA$(Z)))
  133. 3200   IF NA$(Z)<>"" THEN 3240
  134. 3210    IF Z=1 THEN BEEP:LOCATE LIN,COL:GOTO 3160
  135. 3220    Z=P:P=P-1:GOTO 3310
  136. 3230   ' Initialize Variables
  137. 3240   C#(Z)=4E+07:R$(Z)="Office Manager"
  138. 3250   TI(Z)=0:RD#(Z)=0:CR(Z)=0:M#(Z)=0:CB(Z)=0
  139. 3260   FOR CNT=1 TO 6
  140. 3270    BC!(Z,CNT)=OC!(CNT)
  141. 3280    BB(Z,CNT)=0
  142. 3290   NEXT CNT
  143. 3300  NEXT Z:PRINT
  144. 3310  PRINT "The following text (foreground) colors are available:";LF$
  145. 3320  FOR CNT1=0 TO 3
  146. 3330   FOR CNT2=1 TO 4
  147. 3340    PRINT TAB((CNT2-1)*20+5);
  148. 3350    COLR=CNT1*4+CNT2
  149. 3360    IF COLR=16 THEN 3380
  150. 3370     COLOR COLR,0:PRINT RIGHT$(STR$(COLR),2);"=";COLR$(COLR);
  151. 3380   NEXT CNT2:PRINT
  152. 3390  NEXT CNT1:PRINT:COLOR 7,0
  153. 3400  FOR Z=1 TO P
  154. 3410   PRINT "Player #";MID$(STR$(Z),2);", please enter your desired";
  155. 3420   PRINT " text color (1-15) ";
  156. 3430   LIN=CSRLIN:COL=POS(0)
  157. 3440   BK$=CHR$(95):FLD.LEN=2
  158. 3450   LOCATE LIN,COL:PRINT BK$;BK$;BS$;BS$;
  159. 3460   GOSUB 40200:COLR=VAL(BLD$)
  160. 3470   IF COLR<1 OR COLR>15 THEN BEEP:GOTO 3450
  161. 3480   FC(Z)=COLR:LOCATE LIN,COL
  162. 3490   PRINT USING "##";COLR;:PRINT " - ";:COLOR COLR,0
  163. 3500   PRINT COLR$(COLR):COLOR 7,0
  164. 3510  NEXT Z:PRINT
  165. 3520  TXT$="PRESS <RETURN> TO BEGIN":GOSUB 40100
  166. 3530  WHILE INKEY$<>"":WEND
  167. 3540  X$=INPUT$(1):IF X$<>CR$ THEN 3530
  168. 3990  RETURN
  169. 10000  ' Subroutine - Play Game
  170. 10010  OVER=FALSE
  171. 10020  FOR Z=1 TO P
  172. 10030   IF NA$(Z)="X" THEN 10140
  173. 10040   TI(Z)=TI(Z)+1
  174. 10050   COLOR FC(Z)
  175. 10060   GOSUB 11000 ' Screen 1 - Status
  176. 10070   GOSUB 12000 ' Screen 2 - Purchases
  177. 10080   GOSUB 13000 ' Screen 3 - News
  178. 10090   GOSUB 14000 ' Screen 4 - R & D Report
  179. 10100   GOSUB 15000 ' Screen 5 - Costs
  180. 10110   GOSUB 16000 ' Screen 6 - Bid
  181. 10120   GOSUB 17000 ' Promotions/Win/Lose
  182. 10130   IF (OVER) THEN 10990
  183. 10140  NEXT Z
  184. 10150  GOTO 10020
  185. 10990  RETURN
  186. 11000  ' Subroutine - Screen 1 - Status
  187. 11010  CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  188. 11020  PRINT A$:PRINT " NAME: ";NA$(Z);TAB(69-LEN(R$(Z)));
  189. 11030  PRINT "POSITION: ";R$(Z):PRINT A$
  190. 11040  PRINT " COMPANY STATUS DISPLAY";TAB(69);"TURN: ";
  191. 11050  PRINT USING "####";TI(Z):PRINT A$;LF$
  192. 11060  PRINT TAB(12);"BRIDGE CONSTRUCTION STATUS"
  193. 11070  PRINT TAB(12);GR1$;STRING$(13,GR2$);GR9$;STRING$(10,GR2$);GR3$
  194. 11080  PRINT TAB(12);GR4$;" BRIDGE TYPE ";GR4$;" COMPLETE ";GR4$
  195. 11090  PRINT TAB(12);GR7$;STRING$(13,GR2$);GR10$;STRING$(10,GR2$);GR8$
  196. 11100  FOR CNT=1 TO 6
  197. 11110   PRINT TAB(12);GR4$;" ";B$(CNT);" ";GR4$;"   ";
  198. 11120   PRINT USING "###";BB(Z,CNT);:PRINT "    ";GR4$
  199. 11130  NEXT CNT
  200. 11140  PRINT TAB(12);GR5$;STRING$(13,GR2$);GR11$;STRING$(10,GR2$);GR6$
  201. 11150  FOR LIN=8 TO 20
  202. 11160   LOCATE LIN,50:PRINT GR4$
  203. 11170  NEXT LIN:PRINT A$;LF$:PRINT A$
  204. 11180  LOCATE 7,50:PRINT GR9$
  205. 11190  LOCATE 9,50:PRINT GR7$;STRING$(29,GR2$)
  206. 11200  LOCATE 21,50:PRINT GR11$
  207. 11210  LOCATE 8,55:PRINT "COMPANY ASSETS STATUS"
  208. 11220  LOCATE 11,52:PRINT "NUMBER OF WORK CREWS = ";USING "####";CR(Z)
  209. 11230  LOCATE 13,52:PRINT "TOTAL R&D =";USING U$;RD#(Z)
  210. 11240  LOCATE 15,52:PRINT "MATERIALS =";USING U$;M#(Z)
  211. 11250  LOCATE 17,52:PRINT "CASH RES. =";USING U$;C#(Z)
  212. 11260  LOCATE 22,1:TXT$="PRESS <RETURN>":GOSUB 40100
  213. 11270  WHILE INKEY$<>"":WEND
  214. 11280  X$=INPUT$(1):IF X$<>CR$ THEN 11270
  215. 11990  RETURN
  216. 12000  ' Subroutine - Screen 2 - Purchases
  217. 12010  CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  218. 12020  PRINT A$:PRINT " NAME: ";NA$(Z);TAB(69-LEN(R$(Z)));
  219. 12030  PRINT "POSITION: ";R$(Z):PRINT A$
  220. 12040  PRINT " COMPANY PURCHASES DISPLAY";TAB(69);"TURN: ";
  221. 12050  PRINT USING "####";TI(Z):PRINT A$;LF$
  222. 12060  PRINT TAB(14);"1 - Hiring of";CI;"additional work crews:";
  223. 12070  PRINT TAB(55);USING U$;CC#
  224. 12080  PRINT TAB(14);"2 - Research & development investment:";
  225. 12090  PRINT TAB(55);USING U$;RC#
  226. 12100  PRINT TAB(14);"3 - Purchase of construction materials:";
  227. 12110  PRINT TAB(55);USING U$;MC#
  228. 12120  PRINT TAB(14);"4 - End purchases";LF$
  229. 12130  PRINT A$
  230. 12140  TXT$=GR1$+STRING$(29,GR2$)+GR3$:GOSUB 40100:PRINT
  231. 12150  TXT$=GR4$+" NUMBER OF WORK CREWS =      "+GR4$:GOSUB 40100
  232. 12160  PRINT STRING$(6,BS$);:L1X=CSRLIN:L1Y=POS(0)
  233. 12170  PRINT USING "####";CR(Z)
  234. 12180  TXT$=GR4$+" TOTAL R&D ="+SPACE$(LEN(U$)+1)+GR4$:GOSUB 40100
  235. 12190  PRINT STRING$(LEN(U$)+2,BS$);:L2X=CSRLIN:L2Y=POS(0)
  236. 12200  PRINT USING U$;RD#(Z)
  237. 12210  TXT$=GR4$+" MATERIALS ="+SPACE$(LEN(U$)+1)+GR4$:GOSUB 40100
  238. 12220  PRINT STRING$(LEN(U$)+2,BS$);:L3X=CSRLIN:L3Y=POS(0)
  239. 12230  PRINT USING U$;M#(Z)
  240. 12240  TXT$=GR4$+" CASH RES. ="+SPACE$(LEN(U$)+1)+GR4$:GOSUB 40100
  241. 12250  PRINT STRING$(LEN(U$)+2,BS$);:L4X=CSRLIN:L4Y=POS(0)
  242. 12260  PRINT USING U$;C#(Z)
  243. 12270  TXT$=GR5$+STRING$(29,GR2$)+GR6$:GOSUB 40100:PRINT:PRINT A$
  244. 12280  TXT$="ENTER SELECTION (1-4): <4>":GOSUB 40100:PRINT BS$;BS$;
  245. 12290  LIN=CSRLIN:COL=POS(0):DFLT$="4":PRINT:PRINT A$
  246. 12300  LOCATE LIN,COL
  247. 12310  WHILE INKEY$<>"":WEND
  248. 12320  FLD.LEN=1:BK$=DFLT$:GOSUB 40200
  249. 12330  OP$=BLD$:IF OP$="" THEN OP$=DFLT$
  250. 12340  IF OP$>"0" AND OP$<"5" THEN 12360
  251. 12350   BEEP:LOCATE LIN,COL:PRINT DFLT$:GOTO 12300
  252. 12360  DFLT$=OP$
  253. 12370  ON VAL(OP$) GOTO 12380,12400,12420,12460
  254. 12380  CR(Z)=CR(Z)+CI:C#(Z)=C#(Z)-CC#
  255. 12390  LOCATE L1X,L1Y:PRINT USING "####";CR(Z):GOTO 12440
  256. 12400  RD#(Z)=RD#(Z)+RC#:C#(Z)=C#(Z)-RC#
  257. 12410  LOCATE L2X,L2Y:PRINT USING U$;RD#(Z):GOTO 12440
  258. 12420  M#(Z)=M#(Z)+MC#:C#(Z)=C#(Z)-MC#
  259. 12430  LOCATE L3X,L3Y:PRINT USING U$;M#(Z)
  260. 12440  LOCATE L4X,L4Y:PRINT USING U$;C#(Z)
  261. 12450  GOTO 12300
  262. 12460  '
  263. 12990  RETURN
  264. 13000  ' Subroutine - Screen 3 - News
  265. 13010  CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  266. 13020  PRINT A$:PRINT " NAME: ";NA$(Z);TAB(69-LEN(R$(Z)));
  267. 13030  PRINT "POSITION: ";R$(Z):PRINT A$
  268. 13040  PRINT " SECRETARY'S REPORT";TAB(69);"TURN: ";
  269. 13050  PRINT USING "####";TI(Z):PRINT A$;LF$
  270. 13060  RESTORE 30000
  271. 13070  READ MSGS:X=INT(RND(1)*(MSGS+10))+1
  272. 13080  IF X<=MSGS THEN 13110
  273. 13090   TXT$="Nothing of importance is in the news."
  274. 13100   GOSUB 40100:PRINT LF$;LF$:GOTO 13320
  275. 13110  FOR K=1 TO X:READ E1$,E2$,AF,MP#:NEXT
  276. 13120  IF ABS(MP#)=MP# OR AF=4 THEN 13190
  277. 13130  ON AF GOTO 13140,13160,13180
  278. 13140   IF CR(Z)=0 THEN 13060
  279. 13150   GOTO 13190
  280. 13160   IF RD#(Z)=0 THEN 13060
  281. 13170   GOTO 13190
  282. 13180   IF M#(Z)=0 THEN 13060
  283. 13190  TXT$=E1$:GOSUB 40100:PRINT:TXT$=E2$:GOSUB 40100:PRINT LF$
  284. 13200  IF ABS(MP#)<>MP# THEN BEEP
  285. 13210  ON AF GOTO 13220,13250,13280,13310
  286. 13220   CR(Z)=CR(Z)+MP#
  287. 13230   IF CR(Z)<0 THEN CR(Z)=0
  288. 13240   GOTO 13320
  289. 13250   RD#(Z)=RD#(Z)+MP#
  290. 13260   IF RD#(Z)<0 THEN RD#(Z)=0
  291. 13270   GOTO 13320
  292. 13280   M#(Z)=M#(Z)+MP#
  293. 13290   IF M#(Z)<0 THEN M#(Z)=0
  294. 13300   GOTO 13320
  295. 13310   C#(Z)=C#(Z)+MP#
  296. 13320  PRINT A$;LF$
  297. 13330  TXT$=GR1$+STRING$(29,GR2$)+GR3$:GOSUB 40100:PRINT
  298. 13340  TXT$=GR4$+" NUMBER OF WORK CREWS =      "+GR4$:GOSUB 40100
  299. 13350  PRINT STRING$(6,BS$);USING "####";CR(Z)
  300. 13360  TXT$=GR4$+" TOTAL R&D ="+SPACE$(LEN(U$)+1)+GR4$:GOSUB 40100
  301. 13370  PRINT STRING$(LEN(U$)+2,BS$);USING U$;RD#(Z)
  302. 13380  TXT$=GR4$+" MATERIALS ="+SPACE$(LEN(U$)+1)+GR4$:GOSUB 40100
  303. 13390  PRINT STRING$(LEN(U$)+2,BS$);USING U$;M#(Z)
  304. 13400  TXT$=GR4$+" CASH RES. ="+SPACE$(LEN(U$)+1)+GR4$:GOSUB 40100
  305. 13410  PRINT STRING$(LEN(U$)+2,BS$);USING U$;C#(Z)
  306. 13420  TXT$=GR5$+STRING$(29,GR2$)+GR6$:GOSUB 40100
  307. 13430  PRINT LF$:PRINT A$
  308. 13440  TXT$="PRESS <RETURN>":GOSUB 40100:PRINT:PRINT A$
  309. 13450  WHILE INKEY$<>"":WEND
  310. 13460  X$=INPUT$(1):'IF X$<>CR$ THEN 13320
  311. 13470  IF X$<>CR$ THEN 13450
  312. 13990  RETURN
  313. 14000  ' Subroutine - Screen 4 - R & D Report
  314. 14010  IF RD#(Z)=0 THEN 14990
  315. 14020  CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  316. 14030  PRINT A$:PRINT " NAME: ";NA$(Z);TAB(69-LEN(R$(Z)));
  317. 14040  PRINT "POSITION: ";R$(Z):PRINT A$
  318. 14050  PRINT " RESEARCH & DEVELOPMENT STATUS";TAB(69);"TURN: ";
  319. 14060  PRINT USING "####";TI(Z):PRINT A$;LF$
  320. 14070  X=INT(RND(1)*30)+1:X#=X*1E+06
  321. 14080  IF RD#(Z)>X# THEN 14120
  322. 14090   TXT$="Research & Development reports no progress this turn."
  323. 14100   GOSUB 40100:PRINT LF$:PRINT A$
  324. 14110   GOTO 14340
  325. 14120  X=INT(RND(1)*6)+1
  326. 14130  TXT$="Research & Development reports a breakthrough:"
  327. 14140  GOSUB 40100:BEEP:PRINT LF$
  328. 14150  TXT$="The cost of a":IF X=4 THEN TXT$=TXT$+"n"
  329. 14160  TXT$=TXT$+" "+SB$(X)+" bridge has gone from":GOSUB 40100:PRINT LF$
  330. 14170  FC!=BC!(Z,X):BC!(Z,X)=BC!(Z,X)*0.75
  331. 14180  EPL1=LEN(STR$(INT(FC!)))
  332. 14190  CNT=LEN(EP$(EPL1))+3
  333. 14200  EPL2=LEN(STR$(INT(BC!(Z,X))))
  334. 14210  CNT=CNT+LEN(EP$(EPL2))+14
  335. 14220  TB=(80-CNT)/2+1:PRINT TAB(TB);
  336. 14230  PRINT USING EP$(EPL1);FC!;
  337. 14240  PRINT " to";
  338. 14250  PRINT USING EP$(EPL2);BC!(Z,X);
  339. 14260  PRINT " per 100 feet."
  340. 14270  PRINT LF$;A$;LF$
  341. 14280  TXT$="Research & Development costs run"
  342. 14290  EPL=LEN(STR$(INT(X#/2)))
  343. 14300  CNT=LEN(TXT$)+LEN(EP$(EPL))+1
  344. 14310  TB=(80-CNT)/2+1:PRINT TAB(TB);TXT$;
  345. 14320  PRINT USING EP$(EPL);X#/2;:PRINT "."
  346. 14330  RD#(Z)=RD#(Z)-X#/2
  347. 14340  LOCATE 21,1:PRINT A$
  348. 14350  TXT$="PRESS <RETURN>":GOSUB 40100:PRINT:PRINT A$
  349. 14360  WHILE INKEY$<>"":WEND
  350. 14370  X$=INPUT$(1)
  351. 14380  IF X$<>CR$ THEN 14360
  352. 14990  RETURN
  353. 15000  ' Subroutine - Screen 5 - Costs
  354. 15010  CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  355. 15020  PRINT A$:PRINT " NAME: ";NA$(Z);TAB(69-LEN(R$(Z)));
  356. 15030  PRINT "POSITION: ";R$(Z):PRINT A$
  357. 15040  PRINT " BRIDGE SPECIFICATIONS DISPLAY";TAB(69);"TURN: ";
  358. 15050  PRINT USING "####";TI(Z):PRINT A$
  359. 15060  PRINT TAB(7);GR1$;STRING$(13,GR2$);GR9$;STRING$(11,GR2$);GR9$;
  360. 15070  PRINT STRING$(13,GR2$);GR9$;STRING$(12,GR2$);GR9$;STRING$(12,GR2$);GR3$
  361. 15080  PRINT TAB(7);GR4$;" BRIDGE TYPE ";GR4$;"  TRAFFIC  ";GR4$;
  362. 15090  PRINT " COST/100 FT ";GR4$;" SAFE DIST. ";GR4$;" MAX. DIST. ";GR4$
  363. 15100  PRINT TAB(7);GR7$;STRING$(13,GR2$);GR10$;STRING$(11,GR2$);GR10$;
  364. 15110  PRINT STRING$(13,GR2$);GR10$;STRING$(12,GR2$);GR10$;STRING$(12,GR2$);GR8$
  365. 15120  FOR CNT=1 TO 6
  366. 15130   PRINT TAB(7);GR4$;" ";B$(CNT);" ";GR4$;" ";T$(CNT);" ";
  367. 15140   PRINT GR4$;USING LK$;BC!(Z,CNT);:PRINT " ";GR4$;"   ";BS(CNT);
  368. 15150   PRINT "   ";GR4$;"   ";BM(CNT);"   ";GR4$
  369. 15160  NEXT CNT
  370. 15170  PRINT TAB(7);GR5$;STRING$(13,GR2$);GR11$;STRING$(11,GR2$);GR11$;
  371. 15180  PRINT STRING$(13,GR2$);GR11$;STRING$(12,GR2$);GR11$;STRING$(12,GR2$);GR6$
  372. 15190  PRINT A$
  373. 15200  PRINT TAB(7);"NUMBER OF WORK CREWS = ";USING "####";CR(Z);
  374. 15210  PRINT TAB(47);"TOTAL R&D =";USING U$;RD#(Z)
  375. 15220  PRINT TAB(7);"MATERIALS =";USING U$;M#(Z);
  376. 15230  PRINT TAB(47);"CASH RES. =";USING U$;C#(Z)
  377. 15240  PRINT A$:TXT$="PRESS <RETURN>":GOSUB 40100:PRINT:PRINT A$
  378. 15250  WHILE INKEY$<>"":WEND
  379. 15260  X$=INPUT$(1):IF X$<>CR$ THEN 15250
  380. 15990  RETURN
  381. 16000  ' Subroutine - Screen 6 - Bid
  382. 16010  CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  383. 16020  PRINT A$:PRINT " NAME: ";NA$(Z);TAB(69-LEN(R$(Z)));
  384. 16030  PRINT "POSITION: ";R$(Z):PRINT A$
  385. 16040  PRINT " CONTRACT BIDDING PHASE";TAB(69);"TURN: ";
  386. 16050  PRINT USING "####";TI(Z):PRINT A$;LF$
  387. 16060  TXT$="A client you are dealing with needs a bridge with these specs:"
  388. 16070  GOSUB 40100:PRINT LF$
  389. 16080  C=INT(RND(1)*6)+1
  390. 16090  Y=INT(RND(1)*BM(C))+1
  391. 16100  TXT$="TYPE = "+B$(C)+"  LENGTH ="+STR$(Y)+" FT."
  392. 16110  GOSUB 40100:PRINT LF$
  393. 16120  CST#=Y*BC!(Z,C)/100:EPL=LEN(STR$(INT(CST#)))
  394. 16130  TXT$="Your cost for building this bridge is"
  395. 16140  TB=(80-LEN(TXT$)-LEN(EP$(EPL))-1)/2+1
  396. 16150  PRINT TAB(TB);TXT$;USING EP$(EPL);CST#;
  397. 16160  PRINT ".";LF$:PRINT A$;LF$
  398. 16170  IF CR(Z)>=Y/100*C THEN 16200
  399. 16180   TXT$="You do not have enough WORK CREWS to bid on this bridge."
  400. 16190   GOTO 16220
  401. 16200  IF M#(Z)>=(Y/100)*(M(C)*10000) THEN 16230
  402. 16210   TXT$="You do not have enough MATERIALS to bid on this bridge."
  403. 16220   GOSUB 40100:BEEP:GOTO 16440
  404. 16230  TXT$="Please enter your bid on this bridge:"+SPACE$(13)
  405. 16240  GOSUB 40100:PRINT STRING$(12,BS$);
  406. 16250  LIN=CSRLIN:COL=POS(0):PRINT
  407. 16260  LOCATE LIN,COL:PRINT STRING$(12,95)
  408. 16270  LOCATE LIN,COL:BEEP
  409. 16280  FLD.LEN=12:BK$=CHR$(95):GOSUB 40200
  410. 16290  BO#=VAL(BLD$):IF BO#<CST# OR BO#>=1E+09 THEN 16260
  411. 16300  BID$=BLD$:EPL=LEN(STR$(INT(VAL(BID$))))
  412. 16310  LOCATE LIN,COL:PRINT SPACE$(12)
  413. 16320  LOCATE LIN,COL-1
  414. 16330  PRINT USING EP$(EPL);BO#:PRINT
  415. 16340  IF BO#<=(INT(RND(1)*11)+1)*((OC!(C)*Y/100)*0.9) THEN 16370
  416. 16350   TXT$="Your price was too high, the client takes his business elsewhere."
  417. 16360   GOSUB 40100:GOTO 16440
  418. 16370  PFT#=BO#-CST#:EPL=LEN(STR$(INT(PFT#)))
  419. 16380  TXT$="You get the contract and make"
  420. 16390  TB=(80-LEN(TXT$)-LEN(EP$(EPL))-1)/2+1
  421. 16400  PRINT TAB(TB);TXT$;USING EP$(EPL);PFT#;:PRINT "."
  422. 16410  BEEP:C#(Z)=C#(Z)+PFT#:M#(Z)=M#(Z)-(Y/100)*(M(C)*10000)
  423. 16420  IF M#(Z)<0 THEN M#(Z)=0
  424. 16430  BB(Z,C)=BB(Z,C)+1
  425. 16440  LOCATE 21,1:PRINT A$
  426. 16450  TXT$="PRESS <RETURN>":GOSUB 40100:PRINT:PRINT A$
  427. 16460  WHILE INKEY$<>"":WEND
  428. 16470  X$=INPUT$(1):IF X$<>CR$ THEN 16470
  429. 16990  RETURN
  430. 17000  ' Subroutine - Promotions/Win/Lose
  431. 17010  IF C#(Z)>=0 THEN 17170
  432. 17020   X=INT(RND(1)*300)+1
  433. 17030   IF C#(Z)>=X*1E+06*-1 THEN 17170
  434. 17040    CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  435. 17050    PRINT A$;LF$
  436. 17060    TXT$="Unfortunate news!!!":GOSUB 40100:PRINT LF$:BEEP
  437. 17070    TXT$=NA$(Z)+" has gone bankrupt and is out of the game."
  438. 17080    GOSUB 40100:PRINT LF$
  439. 17090    PRINT A$;LF$
  440. 17100    NA$(Z)="X":OVER=TRUE
  441. 17110    FOR A=1 TO P:IF NA$(A)<>"X" THEN OVER=FALSE:NEXT A
  442. 17120    IF OVER THEN 17150
  443. 17130     TXT$="<< Game Continues >>"
  444. 17140     GOTO 17410
  445. 17150    TXT$="<< Game Over >>"
  446. 17160    GOTO 17410
  447. 17170  IF NOT C#(Z)<0 THEN 17190
  448. 17180   C#(Z)=C#(Z)*1.25
  449. 17190  IF NOT (C#(Z)>5E+07 AND CB(Z)<5) THEN 17210
  450. 17200   R$(Z)="District Manager":CB(Z)=5:GOTO 17990
  451. 17210  IF NOT (C#(Z)>1E+08 AND CB(Z)<10 AND CB(Z)>4) THEN 17230
  452. 17220   R$(Z)="Regional Supervisor":CB(Z)=10:GOTO 17990
  453. 17230  IF NOT (C#(Z)>1.5E+08 AND CB(Z)<15 AND CB(Z)>9) THEN 17250
  454. 17240   R$(Z)="Corporate Advisor":CB(Z)=15:GOTO 17990
  455. 17250  IF NOT (C#(Z)>2E+08 AND CB(Z)<20 AND CB(Z)>14) THEN 17270
  456. 17260   R$(Z)="Company Representative":CB(Z)=20:GOTO 17990
  457. 17270  IF NOT (C#(Z)>3E+08 AND CB(Z)<30 AND CB(Z)>19) THEN 17290
  458. 17280   R$(Z)="V.P. of Production":CB(Z)=30:GOTO 17990
  459. 17290  IF NOT (C#(Z)>4E+08 AND CB(Z)<40 AND CB(Z)>29) THEN 17310
  460. 17300   R$(Z)="Company President":CB(Z)=40:GOTO 17990
  461. 17310  IF CB(Z)<>50 THEN 17390
  462. 17320   CLS:TXT$=TITLE$:GOSUB 40100:PRINT LF$
  463. 17330   PRINT A$;LF$
  464. 17340   TXT$="Important news!!!":GOSUB 40100:PRINT LF$:BEEP
  465. 17350   TXT$=NA$(Z)+" has been elected":GOSUB 40100:PRINT LF$
  466. 17360   TXT$="CHAIRMAN OF THE BOARD":GOSUB 40100:PRINT LF$
  467. 17370   PRINT A$;LF$:TXT$="<< Game Over >>":OVER=TRUE
  468. 17380   GOTO 17410
  469. 17390  IF NOT (C#(Z)>5E+08 AND CB(Z)=40) THEN 17990
  470. 17400   CB(Z)=50:GOTO 17990
  471. 17410  GOSUB 40100:PRINT:BEEP
  472. 17420  IF OVER THEN 17990
  473. 17430   LOCATE 21,1:PRINT A$:TXT$="PRESS <RETURN>"
  474. 17440   GOSUB 40100:PRINT:PRINT A$
  475. 17450   WHILE INKEY$<>"":WEND
  476. 17460   X$=INPUT$(1)
  477. 17470   IF X$<>CR$ THEN 17450
  478. 17990  RETURN
  479. 20000  ' Subroutine - Play Again?
  480. 20010  AGAIN=FALSE:FLD.LEN=1:BK$="Y"
  481. 20020  LOCATE 21,1:PRINT A$:TXT$="Play again? (Y/N) < >"
  482. 20030  GOSUB 40100:PRINT BS$;BS$;
  483. 20040  LIN=CSRLIN:COL=POS(0)
  484. 20050  PRINT:PRINT A$
  485. 20060  LOCATE LIN,COL:PRINT BK$;BS$;
  486. 20070  BEEP:GOSUB 40200:OP$=BLD$
  487. 20080  IF OP$="" THEN OP$=BK$
  488. 20090  OP$=CHR$(ASC(OP$) AND 223)
  489. 20100  IF OP$<>"Y" AND OP$<>"N" THEN 20060
  490. 20110  IF OP$="Y" THEN AGAIN=TRUE
  491. 20990  RETURN
  492. 30000  ' Secretary Reports Data E1$,E2$,AF,MP#
  493. 30010  DATA 66     :' Number of Messages
  494. 30020  DATA "Congress has just passed a highly restrictive tarrif"
  495. 30030  DATA "on steel which costs the company $5,000,000."
  496. 30040  DATA 4,-5000000
  497. 30050  DATA "Company losses total $4,000,000 because of late delivery"
  498. 30060  DATA "of construction materials from a third world country."
  499. 30070  DATA 4,-4000000
  500. 30080  DATA "A suspension bridge built by the company five years ago collapses"
  501. 30090  DATA "due to faulty engineering, with lawsuits totaling $10,000,000."
  502. 30100  DATA 4,-10000000
  503. 30110  DATA "Cost overruns cost the company $3,500,000 because of late delivery"
  504. 30120  DATA "of construction materials to job site by 'El Cheapo' trucker."
  505. 30130  DATA 4,-3500000
  506. 30140  DATA "Company is prosecuted by the justice department for illegal"
  507. 30150  DATA "payoffs to overseas suppliers.  Fines total $6,500,000."
  508. 30160  DATA 4,-6500000
  509. 30170  DATA "Pregnant former secretary seeks $10,000,000 for 'illegal"
  510. 30180  DATA "entry'.  Company settles out of court for $500,000."
  511. 30190  DATA 4,-500000
  512. 30200  DATA "Chartered vessel carrying $5,000,000 in structural steel forms"
  513. 30210  DATA "sinks in mid-ocean.  Underwriters will not honor claim."
  514. 30220  DATA 4,-5000000
  515. 30230  DATA "U.S. Customs fines company $10,000,000 for fraudulent"
  516. 30240  DATA "invoicing on import shipments during the past five years."
  517. 30250  DATA 4,-10000000
  518. 30260  DATA "Congress has just passed a tarrif"
  519. 30270  DATA "which costs the company $1,000,000."
  520. 30280  DATA 4,-1000000
  521. 30290  DATA "An accounting error has just been discovered costing the"
  522. 30300  DATA "company $10,000.  The responsible employee has been fired."
  523. 30310  DATA 4,-10000
  524. 30320  DATA "The Chairman of the Board has just ordered you to"
  525. 30330  DATA "spend $5,000 for a wildlife conservation project."
  526. 30340  DATA 4,-5000
  527. 30350  DATA "A former employee has collected $100,000"
  528. 30360  DATA "in an insurance claim against the company."
  529. 30370  DATA 4,-100000
  530. 30380  DATA "A worker slowdown has cost the company $3,000."
  531. 30390  DATA
  532. 30400  DATA 4,-3000
  533. 30410  DATA "The Health & Safety Department has condemned one of your"
  534. 30420  DATA "regional offices.  It costs you $300,000 to rebuild."
  535. 30430  DATA 4,-300000
  536. 30440  DATA "New government regulations just adopted"
  537. 30450  DATA "regarding federal trade cost you $2,000."
  538. 30460  DATA 4,-2000
  539. 30470  DATA "Vandals hit your main office causing $500 in damage."
  540. 30480  DATA
  541. 30490  DATA 4,-500
  542. 30500  DATA "Worker carelessness costs the company $1,000.  An"
  543. 30510  DATA "investigation for the person responsible is underway."
  544. 30520  DATA 4,-1000
  545. 30530  DATA "A labor strike causes $50,000 in lost production."
  546. 30540  DATA
  547. 30550  DATA 4,-50000
  548. 30560  DATA "A large production crane has been stolen."
  549. 30570  DATA "It costs $1,000,000 to replace."
  550. 30580  DATA 4,-1000000
  551. 30590  DATA "A communications breakdown costs the"
  552. 30600  DATA "company $7,000 in miscellaneous problems."
  553. 30610  DATA 4,-7000
  554. 30620  DATA "The present Chairman of the Board died."
  555. 30630  DATA "It costs $30,000 to replace him."
  556. 30640  DATA 4,-30000
  557. 30650  DATA "A regional office has burned to the ground.  It costs"
  558. 30660  DATA "the company $300,000 in repairs and insurance hikes."
  559. 30670  DATA 4,-300000
  560. 30680  DATA "The government has changed its position on competition"
  561. 30690  DATA "in the industry.  It should not affect our business."
  562. 30700  DATA 4,0
  563. 30710  DATA "A former client has given the company $20,000,000"
  564. 30720  DATA "because of its performance on the job."
  565. 30730  DATA 4,20000000
  566. 30740  DATA "A new labor contract actually saves the company $5,000,000."
  567. 30750  DATA
  568. 30760  DATA 4,5000000
  569. 30770  DATA "Company captures corporate spy and receives"
  570. 30780  DATA "$5,000,000 in rewards from appreciative companies."
  571. 30790  DATA 4,5000000
  572. 30800  DATA "Company makes equipment purchase on"
  573. 30810  DATA "foreign market and saves $20,000,000."
  574. 30820  DATA 4,20000000
  575. 30830  DATA "Company R & D department develops new communications"
  576. 30840  DATA "devise.  Profits on the sales net the company $30,000,000."
  577. 30850  DATA 4,30000000
  578. 30860  DATA "Accounting department reports previous earnings understated."
  579. 30870  DATA "Company gains $3,000,000.  Promotions and firings ensue."
  580. 30880  DATA 4,3000000
  581. 30890  DATA "Government lobby forces legislation through congress"
  582. 30900  DATA "which saves the company $10,000,000 in taxes."
  583. 30910  DATA 4,10000000
  584. 30920  DATA "New accounting system saves company $4,000,000."
  585. 30930  DATA "Several programmers given raises (yea!)."
  586. 30940  DATA 4,4000000
  587. 30950  DATA "Major competitor goes bankrupt."
  588. 30960  DATA "Company gains $50,000,000 in new revenues."
  589. 30970  DATA 4,50000000
  590. 30980  DATA "Company installs new computer system"
  591. 30990  DATA "and saves $5,000,000 in labor."
  592. 31000  DATA 4,5000000
  593. 31010  DATA "There has been some protest of the company's activities"
  594. 31020  DATA "in the Everglades.  However, it should not affect business."
  595. 31030  DATA 4,0
  596. 31040  DATA "Government launches investigation into alleged underground"
  597. 31050  DATA "activities by company officials.  It should not affect business."
  598. 31060  DATA 4,0
  599. 31070  DATA "Your secretary's daughter has just had"
  600. 31080  DATA "a baby.  It should not affect business."
  601. 31090  DATA 4,0
  602. 31100  DATA "Your secretary feels poorly and wishes to go home."
  603. 31110  DATA
  604. 31120  DATA 4,0
  605. 31130  DATA "100 striking employees return to"
  606. 31140  DATA "work after a long, hungry absence."
  607. 31150  DATA 1,100
  608. 31160  DATA "50 of your employees die in a freak nuclear"
  609. 31170  DATA "accident while working near Three Mile Island."
  610. 31180  DATA 1,-50
  611. 31190  DATA "An anonymous source donates $10,000,000 in construction"
  612. 31200  DATA "materials.  An investigation by local authorites is started."
  613. 31210  DATA 3,10000000
  614. 31220  DATA "Robbers make-off with $5,000,000 in construction"
  615. 31230  DATA "materials.  Insurance premiums go sky-high."
  616. 31240  DATA 3,-5000000
  617. 31250  DATA "An earthquake creates a new fault line right at your materials"
  618. 31260  DATA "depot.  $15,000,000 in construction materials are lost."
  619. 31270  DATA 3,-15000000
  620. 31280  DATA "R & D Department reports programmer embezzels $15,000,000."
  621. 31290  DATA "They say he was last seen boarding a plane for Rio."
  622. 31300  DATA 2,-15000000
  623. 31310  DATA "R & D Department reports inventing fool-proof counterfeit money"
  624. 31320  DATA "press.  $22,000,000 is stashed-away before they are arrested."
  625. 31330  DATA 2,22000000
  626. 31340  DATA "75 employees die as 'Love Boat' sinks in the Bermuda Triangle."
  627. 31350  DATA
  628. 31360  DATA 1,-75
  629. 31370  DATA "Personell department smuggles in 75"
  630. 31380  DATA "'illegal aliens' from Silicon Valley."
  631. 31390  DATA 1,75
  632. 31400  DATA "100 of your employees disappear suddenly.  Entire"
  633. 31410  DATA "city reports sighting of U.F.O.'s same night."
  634. 31420  DATA 1,-100
  635. 31430  DATA "R & D Department donates $10,000,000 to 'Moonies'"
  636. 31440  DATA "Massive firings ensue."
  637. 31450  DATA 2,-10000000
  638. 31460  DATA "R & D department creates new video game - 'Construction Worker'."
  639. 31470  DATA "Game gets 'X' rating.  Profits of $20,000,000 are re-invested."
  640. 31480  DATA 2,20000000
  641. 31490  DATA "Construction materials fall victim of 'acid rain'."
  642. 31500  DATA "$7,000,000 worth of materials have to be scrapped."
  643. 31510  DATA 3,-7000000
  644. 31520  DATA "Company president dies - Company gains $100,000,000"
  645. 31530  DATA "as the sole beneficiary listed in the will!"
  646. 31540  DATA 4,100000000
  647. 31550  DATA "Truck falls 800 feet into bay as suspension bridge crumbles."
  648. 31560  DATA "Trucker survives and wins $15,000,000 in lawsuit battle."
  649. 31570  DATA 4,-15000000
  650. 31580  DATA "Corporate income taxes come due."
  651. 31590  DATA "Company pays $10,000,000."
  652. 31600  DATA 4,-10000000
  653. 31610  DATA "Company Christmas Club account matures.  Company"
  654. 31620  DATA "collects $75,000,000 (but no gifts are bought!)."
  655. 31630  DATA 4,75000000
  656. 31640  DATA "Company pays $12,000,000 in dividends to stockholders."
  657. 31650  DATA
  658. 31660  DATA 4,-12000000
  659. 31670  DATA "Company receives $45,000,000 in capital from sale of stock."
  660. 31680  DATA
  661. 31690  DATA 4,45000000
  662. 31700  DATA "45 of your 50 cigarette smokers die suddenly of lung"
  663. 31710  DATA "cancer.  The remaining five quit smoking immediately."
  664. 31720  DATA 1,-45
  665. 31730  DATA "Employees win strike.  Raises and"
  666. 31740  DATA "benefits cost company $7,000,000."
  667. 31750  DATA 4,-7000000
  668. 31760  DATA "R & D department builds robot.  Robot goes berzerk"
  669. 31770  DATA "and destroys entire R & D facility and half of city."
  670. 31780  DATA 2,-100000000
  671. 31790  DATA "Insurance company finally honors stolen materials"
  672. 31800  DATA "claim.  Company gains $45,000,000 in new materials."
  673. 31810  DATA 3,45000000
  674. 31820  DATA "$13,000,000 in materials have to be disposed"
  675. 31830  DATA "of when they are found to be radio-active."
  676. 31840  DATA 3,-13000000
  677. 31850  DATA "65 employees go on strike."
  678. 31860  DATA "They demand IBM Computers instead of Apples!"
  679. 31870  DATA 1,-65
  680. 31880  DATA "Vandals try to siphon gas from crane using vaccuum-cleaner."
  681. 31890  DATA "Loss in crane and surrounding buildings runs $10,000,000."
  682. 31900  DATA 4,-10000000
  683. 31910  DATA "While digging on a site, employees discover complete"
  684. 31920  DATA "Wooly Mammoth skeleton.  Museum pays company $78,000,000."
  685. 31930  DATA 4,78000000
  686. 31940  DATA "Philanthropist donates $100,000,000 to R & D department."
  687. 31950  DATA
  688. 31960  DATA 2,100000000
  689. 31970  DATA "Universal studios pays company $12,000,000 to shoot"
  690. 31980  DATA "'Bridge Over Troubled Water' on location during job."
  691. 31990  DATA 4,12000000
  692. 40000  ' Miscellaneous Subroutines
  693. 40100  ' Center TXT$ on Screen
  694. 40110  PRINT TAB((80-LEN(TXT$))/2+1);TXT$;
  695. 40120  RETURN
  696. 40200  ' Input Loop
  697. 40210  WHILE INKEY$<>"":WEND:BLD$=""
  698. 40220  LOCATE ,,1:IC$=INPUT$(1):LOCATE ,,0
  699. 40230  IF IC$=CR$ THEN 40340
  700. 40240  IF IC$<>DL$ THEN 40290
  701. 40250   IF BLD$="" THEN BEEP:GOTO 40220
  702. 40260   PRINT BS$;BK$;BS$;
  703. 40270   BLD$=LEFT$(BLD$,LEN(BLD$)-1)
  704. 40280   GOTO 40220
  705. 40290  IF IC$<" " OR IC$>"~" THEN BEEP:GOTO 40220
  706. 40300  IF LEN(BLD$)=FLD.LEN THEN BEEP:GOTO 40220
  707. 40310  PRINT IC$;
  708. 40320  BLD$=BLD$+IC$
  709. 40330  GOTO 40220
  710. 40340  RETURN
  711. 40990  ' *** END OF CODE ***
  712.